#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <algorithm>
#include <queue>

//int main() {
//	int t = 0;
//	cin >> t;
//	while (t--) {
//		int n, m;
//		cin >> n >> m;
//		long long ans = 0;
//		list<pair<long long, int>> list;
//		for (int i = 1; i <= n; i++) {
//			int num = 0;
//			cin >> num;
//			ans += num;
//			if (num > 0) {
//				list.push_back({ (n - i + 1) * num, i });
//			}
//		}
//
//		sort(list.begin(), list.end());
//		while (m--) {
//			auto tmp = list.back();
//			ans -= tmp.first;
//			int id = tmp.second;
//			int single = tmp.first / (n - tmp.second + 1);
//			for (auto it = list.begin(); it != list.end(); it++) {
//				if (it->second > id) {
//					
//				}
//			}
//		}
//	}
//	return 0;
//}

//
//int main() {
//	int t = 0;
//	cin >> t;
//	while (t--) {
//		int n, m;
//		cin >> n >> m;
//		vector<int> arr(n);
//		long long Max = 0;
//		long long sum = 0;
//		int id = 0;
//		for (int i = 0; i < n; i++) {
//			cin >> arr[i];
//			sum += arr[i];
//			if (arr[i] > 0) {
//				Max = max(Max, (long long)((n - i) * arr[i]));
//				id = i;
//			}
//		}
//
//		if (Max != 0) {
//			int single = arr[id];
//			for (int i = id; i < n; i++) {
//				arr[i] -= single;
//			}
//			sum -= Max;
//		}
//
//		Max = 0;
//		while ((m - 1) > 0) {
//			for (int i = 0; i < n; i++) {
//				if (arr[i] > 0) {
//					Max = max(Max, (long long)((n - i) * arr[i]));
//					id = i;
//				}
//			}
//			if (Max == 0)
//				break;
//			int single = arr[id];
//			for (int i = id; i < n; i++) {
//				arr[i] -= single;
//			}
//			sum -= Max;
//			Max = 0;
//			m--;
//		}
//
//		cout << sum << endl;
//	}
//	return 0;
//}


int main() {
	int t = 0;
	cin >> t;
	while (t--) {
		int n, m;
		cin >> n >> m;
		long long ans = 0;
		priority_queue<long long> pq; 
		for (int i = 0; i < n; i++) {
			int num = 0;
			cin >> num;
			pq.push(num * (n - i));
			ans += num;
		}

		while (m--) {
			long long tmp = pq.top();
			//cout << "tmp:" << tmp << endl;
			pq.pop();
			if (tmp == 0) {
				break;
			}
			ans -= tmp;
		}
		cout << ans << endl;
	}
	return 0;
}